其他
Kubernetes(K8S)集群自动化部署脚本示例
先放个链接,万一有人关注呢
优质文章推荐
↓ ↓ ↓ ↓ ↓
Kubernetes(K8S)部署集群全流程详解:基于Kubeadm
KubeGems:Kubernetes(K8S)集群可视化界面部署
#!/bin/bash
# 定义要部署的CentOS 8主机列表
hosts=("host1" "host2" "host3")
new_node="host4"
# 在master主机上获取token和hash值的函数
get_token_and_hash() {
token=$(ssh master "sudo kubeadm token create --print-join-command" | awk '{print $5}')
hash=$(ssh master "openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'")
echo "Token: $token"
echo "Hash: $hash"
}
# 在所有主机上执行命令的函数
execute_command_on_hosts() {
command=$1
for host in "${hosts[@]}"; do
ssh $host "$command"
done
}
# 更新主机的包管理器
execute_command_on_hosts "sudo yum update -y"
# 配置阿里源
execute_command_on_hosts "sudo yum install -y wget"
execute_command_on_hosts "wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo"
# 安装Kubernetes组件
execute_command_on_hosts "sudo yum install -y kubelet kubeadm kubectl"
# 启动并启用Kubernetes服务
execute_command_on_hosts "sudo systemctl start kubelet"
execute_command_on_hosts "sudo systemctl enable kubelet"
# 在master主机上初始化Kubernetes集群
ssh master "sudo kubeadm init --pod-network-cidr=10.244.0.0/16"
# 部署CNI网络插件
ssh master "kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml"
# 获取token和hash值
get_token_and_hash
token=$(get_token_and_hash | awk '/Token:/{print $2}')
hash=$(get_token_and_hash | awk '/Hash:/{print $2}')
# 添加新节点到Kubernetes集群
ssh master "sudo kubeadm join <master节点的IP地址和端口> --token $token --discovery-token-ca-cert-hash $hash"
# 刷新节点状态
ssh master "kubectl get nodes"
欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。
↓↓↓ 点个在看,无需赞赏!